﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace Unimaq.FacturaDBS_Spring.ADO.Version2.Spring
{
    public class Spring_CM_CO_ComprobanteDetalle_Interfase_ADO
    {
        public int Registrar(Util.ContextoDBSpring ctx, Entidades.Version2.Spring.CM_CO_ComprobanteDetalle_Interfase cmDetalle)
        {
            SqlCommand cmd = new SqlCommand("USP_CM_CO_COMPROBANTE_DETALLE_INSERT", ctx.GetConexion(), ctx.GetTx());
            cmd.CommandType = System.Data.CommandType.StoredProcedure;

            cmd.Parameters.AddWithValue("@TIPOCOMPROBANTE", cmDetalle.TipoComprobante ?? (object)DBNull.Value);
            cmd.Parameters.AddWithValue("@SERIECOMPROBANTE", cmDetalle.SerieComprobante ?? (object)DBNull.Value);
            cmd.Parameters.AddWithValue("@NUMEROCOMPROBANTE", cmDetalle.NumeroComprobante ?? (object)DBNull.Value);
            cmd.Parameters.AddWithValue("@LINEA", cmDetalle.Linea);
            cmd.Parameters.AddWithValue("@TIPOCOMPONENTE", cmDetalle.TipoComponente ?? (object)DBNull.Value);
            cmd.Parameters.AddWithValue("@COMPONENTE", cmDetalle.Componente ?? (object)DBNull.Value);
            cmd.Parameters.AddWithValue("@NOMBRE", cmDetalle.Nombre ?? (object)DBNull.Value);
            cmd.Parameters.AddWithValue("@SUCURSAL", cmDetalle.Sucursal ?? (object)DBNull.Value);
            cmd.Parameters.AddWithValue("@CENTROCOSTO", cmDetalle.CentroCosto ?? (object)DBNull.Value);
            cmd.Parameters.AddWithValue("@CLASIFICADORMOVIMIENTO", cmDetalle.ClasificadorMovimiento ?? (object)DBNull.Value);
            cmd.Parameters.AddWithValue("@UNIDADORGANIZACIONAL", cmDetalle.UnidadOrganizacional ?? (object)DBNull.Value);
            cmd.Parameters.AddWithValue("@CONCEPTOGASTO", cmDetalle.ConceptoGasto ?? (object)DBNull.Value);
            cmd.Parameters.AddWithValue("@CANTIDAD", cmDetalle.Cantidad);
            cmd.Parameters.AddWithValue("@MONEDA", cmDetalle.Moneda);
            cmd.Parameters.AddWithValue("@TIPOCAMBIO", cmDetalle.TipoCambio);
            cmd.Parameters.AddWithValue("@PRECIOUNITARIO", cmDetalle.PrecioUnitario);
            cmd.Parameters.AddWithValue("@MONTOAFECTO", cmDetalle.MontoAfecto);
            cmd.Parameters.AddWithValue("@MONTONOAFECTO", cmDetalle.MontoNoAfecto);
            cmd.Parameters.AddWithValue("@MONTOIMPUESTOVENTAS", cmDetalle.MontoImpuestoVentas);
            cmd.Parameters.AddWithValue("@PROCESOCARGA", cmDetalle.ProcesoCarga);
            cmd.Parameters.AddWithValue("@COMPANIA", cmDetalle.Compania);
            cmd.Parameters.AddWithValue("@ESTADOCARGA", cmDetalle.EstadoCarga);
            cmd.Parameters.AddWithValue("@ESTADO", cmDetalle.Estado);
            cmd.Parameters.AddWithValue("@FECHACARGA", cmDetalle.FechaCarga.HasValue ? cmDetalle.FechaCarga.Value : (object)DBNull.Value);
            cmd.Parameters.AddWithValue("@USUARIORESPONSABLECARGA", cmDetalle.UsuarioResponsableCarga ?? (object)DBNull.Value);

            return cmd.ExecuteNonQuery();            
        }
    }
}
